package v1

type PluginType int

const (
	PluginType_Collector PluginType = iota
	PluginType_Praser
	PluginType_Assembler
	PluginType_Directory
	PluginType_Auto
)

func (p PluginType) String() string {
	switch p {
	case PluginType_Collector:
		return "Collector"
	case PluginType_Praser:
		return "Praser"
	case PluginType_Assembler:
		return "Assembler"
	case PluginType_Directory:
		return "Directory"
	case PluginType_Auto:
		return "Auto"
	default:
		return "Unknown"
	}
}

// 必须实现的方法
type GetPluginType func() PluginType

// 插件必须实现的接口
type BeatPlugin interface {
	//插件中文名,要求唯一
	PluginZName() string
	//插件英文名，要求唯一
	PluginEName() string
	//插件版本
	PluginVersion() string
	//插件描述
	PluginDescription() string
}

//其他接口见各插件文件
